﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using SchoolsBI;
using System.Data.SqlClient;

public partial class Admin_Usuarios : System.Web.UI.Page
{

    static Periodos oPeriodo = new Periodos();
    protected void Page_Load(object sender, EventArgs e)
    {
        cboSede.seleciona += new cboSelected(cboSede_seleciona);
        CboTipoPlanilla.seleciona += new cboSelected(CboTipoPlanilla_seleciona);
        if (!IsPostBack)
        {
            if (biFactory.User().IdSede > 0)
            {
                cboSede.BindCBO();
                cboSede.Value = biFactory.User().IdSede.ToString();
                if (biFactory.User().IdPerfil > 0)
                    cboSede.Enabled = false;
                //cargo el las planillas segun el idsede
                cboSede_seleciona("1", "1");
            }
        }
        
    }
    void CboTipoPlanilla_seleciona(string param1, string param2)
    {
        formFields.Visible = true;
        FillGrid();
    }

    void cboSede_seleciona(string param1, string param2)
    {
        CboTipoPlanilla.SourceData = "proc_getTipoPlanillaSede " + cboSede.Value;
        CboTipoPlanilla.NameId = "idTipoPlanilla";
        CboTipoPlanilla.NameDescript = "Detalle";
        CboTipoPlanilla.TipoOrigen = Controles_cboGeneric.TipoSource.Procedure;
        CboTipoPlanilla.BindCBO();
    }
    protected void cmdAccion_Click(object sender, EventArgs e)
    {
        Save();
        FillGrid();
        Clear();
    }
    private void FillGrid()
    {
        GridView1.DataSource = SchoolsBI.Materia.Tabla("proc_GetPeriodos " + cboSede.Value + "," + CboTipoPlanilla.Value);
        GridView1.DataKeyNames = new string[] { "idPeriodo" };
        GridView1.AutoGenerateColumns = false;
        GridView1.DataBind();
        cmdAccion.Text = "Nuevo";
        txtIdSede.Text = cboSede.Value;
        txtidTipoPlanilla.Text = CboTipoPlanilla.Value;

    }
    void Save()
    {
        switch (cmdAccion.Text)
        {
            case "Nuevo":
                FormToObjet();
                oPeriodo.Crear();
                break;
            case "Modificar":
                FormToObjet();
                oPeriodo.Actualizar();
                EliminarMarca();
                if (chkCuatrimestral.Checked)
                {
                    MarcarComoCuatrimestral();
                }
                break;
            case "Eliminar":
                oPeriodo.Borrar();
                break;
        }
    }

    private void EliminarMarca()
    {
        SqlConnection cnn;
        cnn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ColegiosConnectionString"].ToString());
        string sCommand = "Delete periodocategoria where Idperiodo = @IdPeriodo";
        SqlCommand oCommand = new SqlCommand(sCommand, cnn);
        oCommand.Parameters.Add("@IdPeriodo", SqlDbType.Int);
        oCommand.Parameters["@IdPeriodo"].Value = int.Parse(txtIdPeriodo.Text);
        cnn.Open();
        oCommand.ExecuteNonQuery();
        cnn.Close();
    }

    private void MarcarComoCuatrimestral()
    {

        SqlConnection cnn;
        cnn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ColegiosConnectionString"].ToString());
        string sCommand = "insert into periodocategoria (idtipo, Idperiodo, CategoriaDetalle) values(1,@IdPeriodo,'Cuatrimestral')"; 
        SqlCommand oCommand = new SqlCommand(sCommand, cnn);
        oCommand.Parameters.Add("@IdPeriodo", SqlDbType.Int);
        oCommand.Parameters["@IdPeriodo"].Value = int.Parse(txtIdPeriodo.Text);
        cnn.Open();
        oCommand.ExecuteNonQuery();
        cnn.Close();

        
        
        
    }
    

    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {

        oPeriodo= Periodos.Buscar("IdPeriodo=" + GridView1.SelectedValue.ToString());
        showData();
        cmdAccion.Text = "Modificar";
    }

    void showData()
    {
        ObjetToForm();
    }

    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        oPeriodo = Periodos.Buscar("IdPeriodo=" + GridView1.DataKeys[e.RowIndex].Value.ToString());
        showData();
        cmdAccion.Text = "Eliminar";
    }
    protected void GridView1_PageIndexChanged(object sender, EventArgs e)
    {

    }
    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
        Clear();
    }

    void FormToObjet()
    {
       
        //oPeriodo.IdPeriodo = txtIdPeriodo.Text;
        oPeriodo.FechaDesde = Convert.ToDateTime(WebCalendar1.Text.Split('/')[1] + '-' + WebCalendar1.Text.Split('/')[0] + '-' + WebCalendar1.Text.Split('/')[2]);
        oPeriodo.FechaHasta = Convert.ToDateTime(WebCalendar2.Text.Split('/')[1] + '-' + WebCalendar2.Text.Split('/')[0] + '-' + WebCalendar2.Text.Split('/')[2]);
        oPeriodo.Activa = 1;
        oPeriodo.Anio = 2008;
        oPeriodo.Estado = "1";
        if (cboSede.Value != "")
        {
            oPeriodo.IdSede = int.Parse(cboSede.Value);
        }
        oPeriodo.NroPeriodo = int.Parse( txtNroPeriodo.Text);
        oPeriodo.OrdenPeriodo = int.Parse(txtOrdenPeriodo.Text);
        oPeriodo.Descripcion = txtDescripcion.Text;
        oPeriodo.Particion = txtParticion.Text;
        oPeriodo.idTipoPlanilla = int.Parse(CboTipoPlanilla.Value);
    }
    void ObjetToForm()
    {
        txtIdPeriodo.Text = oPeriodo.IdPeriodo.ToString();
        // .Text = oPeriodo.FechaDesde;
        WebCalendar1.Text = oPeriodo.FechaDesde.ToString("dd/MM/yyyy");
        WebCalendar2.Text = oPeriodo.FechaHasta.ToString("dd/MM/yyyy");
        txtActiva.Text = oPeriodo.Activa.ToString();
        txtAnio.Text = oPeriodo.Anio.ToString();
        txtEstado.Text ="1";
        txtIdSede.Text = oPeriodo.IdSede.ToString();
        txtNroPeriodo.Text = oPeriodo.NroPeriodo.ToString();
        txtOrdenPeriodo.Text = oPeriodo.OrdenPeriodo.ToString();
        txtDescripcion.Text = oPeriodo.Descripcion;
        txtParticion.Text = oPeriodo.Particion;
        txtidTipoPlanilla.Text = oPeriodo.idTipoPlanilla.ToString();
    }
    void Clear()
    {
        txtIdPeriodo.Text = "";
        // .Text = oPeriodo.FechaDesde;
       // txtFechaHasta.Text = oPeriodo.FechaHasta;
        txtActiva.Text = "";
        txtAnio.Text = "";
        txtEstado.Text = "";
        txtIdSede.Text = "";
        txtNroPeriodo.Text = "";
        txtOrdenPeriodo.Text = "";
        txtDescripcion.Text = "";
        txtParticion.Text = "";
        txtidTipoPlanilla.Text = "";
        
    }



}
